package com.cute.leetcode.editor.cn.my;

import java.util.Arrays;


/**
 *  计数排序
 */
public class CountSortM {

    public static void main(String[] args) {

        int [] arr={2,4,2,3,7,1,1,0,0,5,6,9,8,5,7,4,0,9};

        int[] result=sort(arr);

        System.out.println(Arrays.toString(result));
    }

    private static int[] sort(int[] arr) {

        // 第一步定义一个最终返回的数组;
        int [] softArray=new int[arr.length];

        // 第二步定义个新的数组统计每个位置的出现次数;
        int counts[]=new int[10];

        // 第三步 统计次数;
        for (int i=0;i<arr.length;i++){
            counts[arr[i]]++;
        }
        // 输出观察一下
        System.out.println(Arrays.toString(counts));

        // 第四步: 给返回输出填充值

        for (int i=0,j=0;i<counts.length;i++){
            // 自己写的时候 softArray[j++]=i; 没写出来
            while (counts[i]-->0) softArray[j++]=i;
        }

        return softArray;

    }
}
